﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DynaSpace
{
	/// <summary>
	/// Statická třída s funkcema pro snadnější výpočty průběhu animací
	/// </summary>
	public static class MathHelper
	{
		/// <summary>
		/// Vrací sinusoidu v rozsahu min a max s posuvem value.
		/// </summary>
		/// <param name="value">Časový posun</param>
		/// <param name="min">Minimální hodnota</param>
		/// <param name="max">Maximální hodnota</param>
		/// <returns></returns>
		public static byte ByteSinus(float value, byte min, byte max)
		{
			Double result = Math.Sin((double)value) * 0.5 + 0.5;
			int range = max - min;
			return (byte)((range * result) + min);
		}

		/// <summary>
		/// Vrací sinusoidu v rozsahu min a max s posuvem value.
		/// </summary>
		/// <param name="value">Časový posun</param>
		/// <param name="min">Minimální hodnota</param>
		/// <param name="max">Maximální hodnota</param>
		/// <returns></returns>
		public static float FloatSinus(float value, float min, float max)
		{
			Double result = Math.Sin((double)value) * 0.5 + 0.5;
			float range = max - min;
			return (float)((range * result) + min);
		}
	}
}
